// import { fileURLToPath, URL } from 'node:url'

// import { defineConfig } from 'vite'
// import vue from '@vitejs/plugin-vue'
// import vueDevTools from 'vite-plugin-vue-devtools'

// // https://vite.dev/config/
// export default defineConfig({
//   plugins: [
//     vue(),
//     vueDevTools(),
//   ],
//   resolve: {
//     alias: {
//       '@': fileURLToPath(new URL('./src', import.meta.url))
//     },
//   },
//   server: {
//     proxy: {
//       '/api': {
//         target: 'http://localhost:3799',
//         changeOrigin: true,
//         rewrite: p => p.replace(/^\/api/, ''),
//       }
//     }
//   }
// })

import { fileURLToPath, URL } from 'node:url'
import { defineConfig, loadEnv, type UserConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools'

export default defineConfig(({ mode }): UserConfig => {
  const env = loadEnv(mode, process.cwd())

  return {
    plugins: [
      vue(),
      vueDevTools(),
    ],

    resolve: {
      alias: {
        '@': fileURLToPath(new URL('./src', import.meta.url)),
      }
    },

    server: mode === 'development'
      ? {
          proxy: {
            [env.VITE_API_BASE]: {
              target: env.VITE_API_TARGET,
              changeOrigin: true,
              rewrite: (p: string) =>
                p.replace(new RegExp(`^${env.VITE_API_BASE}`), ''),
            }
          }
        }
      : undefined
  }
})
